package com.link2room.rodimus.facade;


import com.link2room.common.dto.param.base.BaseL2rParamDto;
import com.link2room.common.dto.result.base.BaseSession;
import com.link2room.common.jpa.result.QueryResult;
import com.link2room.rodimus.dto.param.api.ModifyCurrentUserMemberNameParamDto;
import com.link2room.rodimus.dto.param.api.RodimusBindingApiParamDto;
import com.link2room.rodimus.dto.param.api.UsableCouopnsApiParamDto;
import com.link2room.rodimus.entity.SalesmanBase;
import com.link2room.rodimus.dto.param.base.RodimusLoginBaseParamDto;
import com.link2room.soundwave.dto.result.base.*;

/**
 * Created by VegetaKo on 2016/10/17.
 */
public interface IMemberApiFacadeService {
    void wxNewMember(RodimusLoginBaseParamDto rodimusLoginBaseParamDto) throws Exception;
    BaseSession getMember(RodimusLoginBaseParamDto rodimusLoginBaseParamDto) throws Exception;
    void bindingPMSMember(RodimusBindingApiParamDto rodimusBindingApiParamDto) throws Exception;
    @Deprecated
    void checkPMSMember(RodimusBindingApiParamDto rodimusBindingApiParamDto) throws Exception;
    PmsMemberPointDto getPMSmemberPoints(RodimusLoginBaseParamDto rodimusLoginBaseParamDto) throws Exception;

    QueryResult<PmsCardPointDto> getPMSmemberPointsDetail(RodimusLoginBaseParamDto rodimusLoginBaseParamDto) throws Exception;

    QueryResult<PmsCouponDto> getPMSmemberCoupons(RodimusLoginBaseParamDto rodimusLoginBaseParamDto) throws Exception;
    QueryResult<SalesmanBase> getSalesmans(RodimusLoginBaseParamDto rodimusLoginBaseParamDto) throws Exception;
    QueryResult<PmsCouponDto>  getUsableCoupons(UsableCouopnsApiParamDto usableCouopnsApiParamDto) throws Exception;
    void autoPMSMember(RodimusLoginBaseParamDto rodimusLoginBaseParamDto) throws Exception;

    PmsMemberInfoDto getPMSMemberInfo() throws Exception;

    /**
     * 同步pms member等级
     * @param paramDto
     */
    void syncCurrentMemberLevel(BaseL2rParamDto paramDto) throws Exception;

    /**
     * 修改当前用户会员姓名
     * @param paramDto
     */
    void modifyCurrentUserMemberName(ModifyCurrentUserMemberNameParamDto paramDto) throws Exception;
}
